#include<iostream>
#include<cstring>
#include<vector>
#include<bitset>
using namespace std;
using LL = long long;
int main() {
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
int n;
cin >> n;
vector<int> a(n + 1);
vector<LL> s(n + 1);
for(int i = 1; i <= n; i++) {
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
bitset<200001> dp;
LL ans = a[1];
dp.set(a[1]);
dp.reset(0);
for(int i = 2; i <= n; i++) {
if (dp.test(i - 1)) {
ans = max(ans, s[i] - (i - 1));
}
dp |= dp << a[i];
dp.reset(i - 1);
}
for(int i = n - 1; i <= 2 * n; i++) {
if (dp.test(i)) {
ans = max(ans, s[n] - i);
}
}
cout << ans << '\n';
}
1365. How Many Numbers Are Smaller Than the Current Number | 771. Jewels and Stones |
1512. Number of Good Pairs | 672. Richest Customer Wealth |
1470. Shuffle the Array | 1431. Kids With the Greatest Number of Candies |
1480. Running Sum of 1d Array | 682. Baseball Game |
496. Next Greater Element I | 232. Implement Queue using Stacks |
844. Backspace String Compare | 20. Valid Parentheses |
746. Min Cost Climbing Stairs | 392. Is Subsequence |
70. Climbing Stairs | 53. Maximum Subarray |
1527A. And Then There Were K | 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers |
318. Maximum Product of Word Lengths | 448. Find All Numbers Disappeared in an Array |
1155. Number of Dice Rolls With Target Sum | 415. Add Strings |
22. Generate Parentheses | 13. Roman to Integer |
2. Add Two Numbers | 515. Find Largest Value in Each Tree Row |
345. Reverse Vowels of a String | 628. Maximum Product of Three Numbers |
1526A - Mean Inequality | 1526B - I Hate 1111 |